/**
 * 解锁配置相关API
 */

import request from '@/utils/request.js';

// 默认解锁配置
const defaultConfigs = {
  // 默认场景配置
  default: {
    title: '解锁私信功能',
    description: '只要通过以下方式，即可马上解锁私信功能',
    video: {
      enabled: true,
      dailyLimit: 3
    },
    share: {
      enabled: true,
      dailyLimit: 1
    },
    vip: {
      enabled: true,
      description: '畅享无限私信'
    },
    extraOptions: []
  },
  // 游戏聊天解锁配置
  gameChat: {
    title: '解锁游戏聊天',
    description: '完成以下任务，立即解锁与游戏好友的聊天功能',
    video: {
      enabled: true,
      dailyLimit: 5
    },
    share: {
      enabled: true,
      dailyLimit: 2
    },
    vip: {
      enabled: true,
      description: '畅享无限私信'
    },
    extraOptions: []
  },
  // VIP聊天解锁配置
  vipChat: {
    title: '解锁会员聊天',
    description: '会员专享聊天功能，选择以下方式立即解锁',
    video: {
      enabled: true,
      dailyLimit: 1
    },
    share: {
      enabled: true,
      dailyLimit: 1
    },
    vip: {
      enabled: true,
      description: '会员专享特权聊天'
    },
    extraOptions: [
      {
        title: '单次解锁',
        description: '一次性解锁此用户聊天',
        iconClass: 'tn-icon-unlock-fill',
        className: 'coin-option',
        action: 'unlockByCoin',
        cost: 50
      }
    ]
  },
  // 添加微信场景配置
  wechat: {
    title: '解锁添加微信',
    description: '今日添加微信次数已用完，通过以下方式获取更多次数',
    video: {
      enabled: true,
      dailyLimit: 1
    },
    share: {
      enabled: true,
      dailyLimit: 1
    },
    vip: {
      enabled: true,
      description: '会员每天可添加5次微信'
    },
    extraOptions: []
  },
  // 发布动态解锁配置
  postCreate: {
    title: '解锁发布动态',
    description: '今日发布次数已用完，通过以下方式获取更多次数',
    video: {
      enabled: true,
      dailyLimit: 1
    },
    share: {
      enabled: false,
      dailyLimit: 0
    },
    vip: {
      enabled: true,
      description: '会员每天可发布3次动态'
    },
    extraOptions: []
  },
  // 扔漂流瓶解锁配置
  bottle: {
    title: '解锁漂流瓶',
    description: '今日扔漂流瓶次数已用完，通过以下方式获取更多次数',
    video: {
      enabled: true,
      dailyLimit: 1
    },
    share: {
      enabled: true,
      dailyLimit: 1
    },
    vip: {
      enabled: true,
      description: '会员每天可扔10次漂流瓶'
    },
    extraOptions: []
  }
};

/**
 * 获取解锁配置
 * @param {String} sceneId 场景ID
 * @returns {Promise<Object>} 解锁配置
 */
export async function getUnlockConfig(sceneId = 'default') {
  try {
    // 优先从服务器获取配置
    const response = await request.get('/api/config/unlock', { params: { sceneId } });
    return response;
  } catch (error) {
    console.log('获取解锁配置失败，使用默认配置', error);
    // 如果服务器请求失败，使用默认配置
    return defaultConfigs[sceneId] || defaultConfigs.default;
  }
}

export default {
  getUnlockConfig
};
